package com.ld.hpfs.service;

import com.ld.hpfs.pojo.User;
import com.ld.hpfs.pojo.Criteria;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public interface UserService {
	int countByExample(Criteria example);

	User selectByPrimaryKey(String userId);

	List<User> selectByExample(Criteria example);

	/**
	 * 更新用户的密码
	 * 
	 * @param example
	 * @return 00：失败，01：成功 ,其他情况
	 */
	String updatePassword(Criteria example);
	/**
	 * 找回用户的密码
	 * 
	 * @param example
	 * @return 00：失败，01：成功 ,其他情况
	 */
	String findPassword(Criteria example)throws Exception;
	/**
	 * 重置用户的密码
	 * 
	 * @param example
	 * @return 00：失败，01：成功 ,其他情况
	 */
	String resetPwdByPrimaryKey(Criteria example);

	/**
	 * 根据主键删除
	 * 
	 * @param example
	 * @return 00：失败，01：成功 ,其他情况
	 */
	String deleteByPrimaryKey(Criteria example);

	/**
	 * 用户登录查找
	 * 
	 * @param criteria
	 * @return 00：失败，01：成功 ,其他情况
	 */
	String selectByBaseUser(Criteria criteria);

	/**
	 * 验证用户名是否注册
	 * 
	 * @param example
	 * @return 00：已经注册，01：未注册 ,其他情况
	 */
	String validateAccount(Criteria example);

	/**
	 * 更新用户密码
	 * 
	 * @param example
	 * @return 00：失败，01：成功 ,其他情况
	 */
	String updateUserPassword(Criteria example);

	/**
	 * 保存用户
	 * 
	 * @param example
	 * @return 00：失败，01：成功 ,其他情况
	 */
	String saveUser(Criteria example);

	/**
	 * 保存用户自己更新的信息
	 * 
	 * @param user
	 * @return 00：失败，01：成功 ,其他情况
	 */
	String updateByPrimaryKeySelective(User user);
	
	/**
	 * 根据用户名查找公司
	 * 
	 * @param criteria
	 * @return 00：失败，01：成功 ,其他情况
	 */
	ArrayList<HashMap<String,Object>> getCompany(HashMap<String,Object> param);
	
	/**
	 * 根据公司名查找公司
	 * 
	 * @param criteria
	 * @return 00：失败，01：成功 ,其他情况
	 */
	HashMap<String,Object> getCompanyId(HashMap<String,Object> param);
	
	/**
	 * 根据公用户名查找用户状态
	 * 
	 * @param user_name
	 * @return 0：正常状态，可登录，1：冻结状态，不可登录
	 */
	String getUserState(HashMap<String,Object> param);
	
	 HashMap<String,Object> getUserId(HashMap<String,Object> param);
	 
	 /*
	  * 将登录信息写入HPFS_L_OP_LOGIN表中
	  */
	 void insertLoginInfo(HashMap<String,Object> temp);
}